#include "BulletDynamics/Featherstone/btMultiBodyInplaceSolverIslandCallback.h"
#ifdef __cplusplus
extern "C" {
#endif
btSortMultiBodyConstraintOnIslandPredicate* bullet_NewbtSortMultiBodyConstraintOnIslandPredicate(){
	btSortMultiBodyConstraintOnIslandPredicate* wrap_out = new btSortMultiBodyConstraintOnIslandPredicate();
	return wrap_out;
}

btSortConstraintOnIslandPredicate2* bullet_NewbtSortConstraintOnIslandPredicate2(){
	btSortConstraintOnIslandPredicate2* wrap_out = new btSortConstraintOnIslandPredicate2();
	return wrap_out;
}

MultiBodyInplaceSolverIslandCallback* bullet_NewMultiBodyInplaceSolverIslandCallback(btMultiBodyConstraintSolver* solver,btDispatcher* dispatcher){
	btMultiBodyConstraintSolver * c_arg_solver=(btMultiBodyConstraintSolver *)(void*)(solver);
	btDispatcher * c_arg_dispatcher=(btDispatcher *)(void*)(dispatcher);
	MultiBodyInplaceSolverIslandCallback* wrap_out = new MultiBodyInplaceSolverIslandCallback(c_arg_solver,c_arg_dispatcher);
	return wrap_out;
}

int bullet_MultiBodyInplaceSolverIslandCallback_GetFieldOfM_numConstraints(MultiBodyInplaceSolverIslandCallback* c_this){
	return (int)(c_this->m_numConstraints);
}

int bullet_MultiBodyInplaceSolverIslandCallback_GetFieldOfM_numMultiBodyConstraints(MultiBodyInplaceSolverIslandCallback* c_this){
	return (int)(c_this->m_numMultiBodyConstraints);
}

btContactSolverInfo** bullet_MultiBodyInplaceSolverIslandCallback_GetFieldOfM_solverInfo(MultiBodyInplaceSolverIslandCallback* c_this){
	return (btContactSolverInfo**)(&c_this->m_solverInfo);
}

void bullet_MultiBodyInplaceSolverIslandCallback_setMultiBodyConstraintSolver(MultiBodyInplaceSolverIslandCallback* c_this,btMultiBodyConstraintSolver* solver){
	btMultiBodyConstraintSolver * c_arg_solver=(btMultiBodyConstraintSolver *)(void*)(solver);
	c_this->setMultiBodyConstraintSolver(c_arg_solver);
}

#ifdef __cplusplus
}
#endif
